########################用户输入########################

#######以后用tkinter写一个图形界面
#######现在将就用txt文本导入文字
with open(u'正文.txt','r',encoding='gb2312')as ZhengWen:
    ZhengWen = ZhengWen.readlines()
with open(u'题目.txt','r',encoding='gb2312')as TiMu:
    TiMu = TiMu.readlines()
#输入的正文是列表，每项是一行文字，每行末尾带有\n
#输入的题目是列表，每项是一个选项，第一项是题目，每行末尾带有\n
Question = TiMu[0]
A = TiMu[1]
B= TiMu[2]
C = TiMu[3]
D = TiMu[4]
#以上代码正常运行

########################核心功能########################

#################常规处理文本
#####特殊符号换成空格
#正文是列表，每项都是字符串，选项是字符串
for TeShuFuHao in '!"(),./:;\n“”?_':
    for i in range(len(ZhengWen)):
        ZhengWen[i] = ZhengWen[i].replace(TeShuFuHao,' ')
    Question = Question.replace(TeShuFuHao,' ')
    A = A.replace(TeShuFuHao,' ')
    B = B.replace(TeShuFuHao,' ')
    C = C.replace(TeShuFuHao,' ')
    D = D.replace(TeShuFuHao,' ')
#以上代码运行正常
    
#################功能一：原词复现直接计数
#####去除连词号，全体小写
#正文改成字符串
ZhengWen1 = ''
for i in range(len(ZhengWen)):
    ZhengWen1 += ZhengWen[i].replace('-',' ').lower()
#生成题目的副本
A1 = A.replace('-',' ').lower()
B1 = B.replace('-',' ').lower()
C1 = C.replace('-',' ').lower()
D1 = D.replace('-',' ').lower()
#####按空格把正文分词成列表
LieBiao = ZhengWen1.split(' ')
#####获取全文每个单词的字典
ZiDian = {}
for DanCi in LieBiao:
    ZiDian[DanCi] = ZiDian.get(DanCi,0)+1
#####初始化分数
FenA = 0
FenB = 0
FenC = 0
FenD = 0
#####为每个选项赋分，出现几次加几分
for a in set(A1.split()):
    try:
        FenA += ZiDian[a]
    except:
        FenA += 0
for b in set(B1.split()):
    try:
        FenB += ZiDian[b]
    except:
        FenB += 0
for c in set(C1.split()):
    try:
        FenC += ZiDian[c]
    except:
        FenC += 0
for d in set(D1.split()):
    try:
        FenD += ZiDian[d]
    except:
        FenD += 0
FunctionOne = [FenA,FenB,FenC,FenD]
#以上代码运行正常

#################功能二：定位词局限在特定段落
#########识别定位词
#####首字母大写的单词（人名、地名）
#####全部大写的单词（缩写）
#####带有连字符的单词（专有名词）
#####数字（年份）
#########找到定位词的位置
#####定位词是第几个单词
#用列表找索引
#####定位词在第几行
#####定位词在第几句
#用句号分句子
#####定位词在第几段
#用回车分段落
#FunctionTwo = [FenA,FenB,FenC,FenD]
#################功能三：同义替换添加词库再匹配
#FunctionThree = [FenA,FenB,FenC,FenD]
#################功能四：还没想好
#FunctionFour = [FenA,FenB,FenC,FenD]
#################权重相加得到总成绩
#grade = sum(FunctionOne,FunctionTwo,FunctionThree,FunctionFour)

########################输出结果########################

#######以后导出到图形界面
#######现在将就输出到shell里
print('使用说明：阅读、题目粘贴到txt文本中')
print(FunctionOne)
#print('最佳选项是：',answer)
#print('匹配度最高的段落是：',paragraph)
#print('解题句是',sentence)
